<?php

namespace App\Http\Controllers\Admin;

use App\Http\Model\Brand;   //品牌数据表
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Input;   //post提交Input
use Illuminate\Support\Facades\Validator; //Validator验证服务

class BrandController extends CommonController
{
    //资源路由get.admin/brand
    //品牌列表
    public function index()
    {
        //测试控制器模型的连接
//        echo 'get.admin/brand idex';
//        $brands = Brand::all(); //bran数据表所有内容
//        dd($brands);
        $brands = (new Brand)->tree();
//        dd($brands);
        //分配模板，$brands数据
        return view('admin.brand.index')->with('data',$brands);
    }


    //资源路由post.admin/brand
    //添加品牌 功能
    public function store()
    {
        //测试post提交
        $input= Input::all();
//        dd($input);

        //验证规则
        //confirmed：确认信息一致；表单name=>规则；required（必须）
        $rules = [
            'bname'=>'required',
        ];
        //错误信息
        $msg = [
            'bname.required'=>'品牌不能为空',//字段.规则
        ];
        //Validator::make验证(验证内容，规则，错误信息    );
        $validator = Validator::make($input,$rules,$msg);//验证内容，规则，错误信息
//        dd($validator);

        if($validator->passes()){//如果通过验证
            //把值直接写入bran
            $re = Brand::create($input);
//            dd($re);
            if ($re){
                return redirect('admin/brand');
            }else{
                return back()->with('errors','数据填充失败，请稍后重试！');  //分配字符串，所以视图上提示错误的地方要做判断 ,因为all()
            }
        }else{//没有通过验证时
            return back()->withErrors($validator);//返回元页面，将错误信息输出到页面
        }
    }



    //资源路由get. admin/brand/create
    //添加品牌 页面
    public function create($bid=null)
    {
//        dd($bid);
        $data = Brand::all(); //bran数据表所有内容
//        dd($brands);
        //分配模板
        return view('admin.brand.create',compact('data','bid'));
    }




    //资源路由get. admin/brand/{brand}
    //显示单个品牌信息
    public function show()
    {
        //载入模板
    }



    //资源路由DELETE. admin/brand/{brand}
    //删除单个品牌
    public function destroy($bid)
    {
        //测试有没有ajax传过来值
//        dd($bid);
        $pids=Brand::where('pid',$bid)->first();

        //判断有没有子集，如没有子集进行删除
        if( empty($pids) ){
            $re = Brand::where('bid',$bid)->delete();
    //        dd($re);

            if($re){
                $data = [
                    'status' => 0,
                    'msg' => '品牌/车系删除成功！',
                ];
            }else{
                $data = [
                    'status' => 1,
                    'msg' => '品牌/车系删除失败，请稍后重试！',
                ];
            }
            return $data;
        }else{

            $data = [
                'status' => 1,
                'msg' => '品牌下有车系，不可删除！',
            ];

            return $data;
        }
    }


    //资源路由PUT|PATCH. admin/brand/{brand}
    //编辑品牌 功能
    public function update($bid)
    {
//        echo $bid;die;
        //测试提交
//        dd(Input::all());
        $input = Input::except('_token','_method');
//        dd($input);
        //修改数据表数据
        $re = Brand::where('bid',$bid)->update($input);
        if ($re){   //编辑成功时
            return redirect('admin/brand'); //跳转

        }else{  //编辑失败时
            return back()->with('errors','数据编辑失败，请稍后重试！');  //返回编辑页，提示错误
        }
    }

    //资源路由get.   admin/brand/{brand}/edit
    //编辑品牌  页面
    public function edit($bid)
    {
//        dd($bid);
        $odata = Brand::find($bid);
//        dd($odata);
        $data = Brand::where('bid','!=',$bid)->where('pid','!=',$bid)->get();
//        dd($data);

        //载入模板
        return view('admin/brand/edit',compact('data','odata'));
    }
}
